<?php
declare (strict_types = 1);

namespace app\common\model;

use think\Model;

/**
 * @mixin \think\Model
 */
class Goods extends Model
{
    /**
     * 一个商品对应一个分类 hasOne
     * 商品属于某个分类下面相对关联关系 belongsTo
     * 查询商品对应的分类信息
     * bind 绑定属性到父模型
     */
    /**
     * 定义商品和分类的关系
     */
    public function cate(){
        return $this->hasOne(Category::class,'id','cate_id')->bind(['cate_name']);
    }

    /**
     * 查询商品品牌的信息
     *
     */
    public function brand(){
        return $this->belongsTo(Brand::class,'brand_id','id')->bind(['brand_name' => 'name']);
    }

    /**
     * 一对多
     * hasMany
     */

    /**
     * 查询商品对应的相册信息
     */
    public function images(){
        return $this->hasMany(GoodsImages::class,'goods_id','id');
    }

    /**
     * 定义商品对应的类型
     */
    public function type(){
        return $this->belongsTo(Type::class,'type_id','id')->bind(['type_name' => 'type_name']);
    }

    /**
     * 定义商品对应的sku
     */
    public function sku(){
        return $this->hasMany(SpecGoods::class,'goods_id','id');
    }

}
